/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rcn.gestores;

import com.rcn.dal.hibernate.GestorHibernateDAO;
import com.rcn.domain.Paciente;
import com.rcn.domain.Tratamiento;
import com.rcn.exception.RaccoonException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Nicolas
 */
public class GestorTratamiento {
    private static GestorTratamiento gestorTratamiento;
    
    private GestorTratamiento(){
        
    }
    
    public static GestorTratamiento getInstance(){
        if(gestorTratamiento==null){
            gestorTratamiento=new GestorTratamiento();
        }
        return gestorTratamiento;
    }
    
    /**
     * Retorna los tratamientos que actualmente tiene el paciente activos.
     * @param paciente
     * @return 
     */
    public List<Tratamiento> getTratamientoActual(Paciente paciente) throws RaccoonException{
        List<Tratamiento> tratamientosActuales=null;
        List<Tratamiento> tratamientos=this.getTratamientos(paciente);
        if(tratamientos!=null){
            for(Tratamiento t:tratamientos){
                if(paciente.equals(t.getPaciente()) && Boolean.TRUE.equals(t.getActivo())){
                    if(tratamientosActuales==null){
                        tratamientosActuales=new ArrayList<Tratamiento>();
                    }
                    tratamientosActuales.add(t);
                }
            }
        }
        return tratamientosActuales;
    }
    
    /**
     * Retorna todos los tratamientos de un paciente.
     * @param paciente
     * @return 
     */
    public List<Tratamiento> getTratamientos(Paciente paciente) throws RaccoonException{
        List<Tratamiento> tratamientos=null;
        if(paciente!=null){
            tratamientos=GestorHibernateDAO.getInstance().getTratamientoDAO().getTratamientosDePaciente(paciente);
        }
        return tratamientos;
    }
}
